As computers have developed to provide greater capabilities at greater speeds, the ability of a user to interface with that computer has also become much simpler. For example, icons provide a pictorial representation of a function which may be executed by a computer and allow a user to easily access that function with the simple click of a mouse or a stroke of a return key. Additionally, many current software programs use realistic representations of objects to take advantage of a user's experience with the physical world. In such realistic representations, a software program for implementing a real-world application may present a realistically-rendered object which is placed directly on a desktop or other environment.
As an example, a computer may present a user with a printer object which has a realistic-looking control panel that allows the users to check a length of a queue or to change settings on the printer. Another common example of a realistic object would be a telephone which includes a keypad such as those typically implemented on real-world telephones. These realistically-rendered objects allow a user to interact with objects on a display device in a similar manner as a user interacts with physical objects to perform those operations that are common to both the physical and the virtual objects. For example, in the above-mentioned telephone application, a user would be able to dial the buttons on the telephone and pick up a handset of the virtual telephone in much the same way that the user would perform these steps with a real physical telephone.
While the use of realistically-rendered objects allows the user to easily interact with the functions performed by the computer, some tasks that are possible with a computer have no clear real-world equivalent. These tasks may include resizing and modification of the functionality of the realistically-rendered objects. As a user is not able to resize a size of their physical telephone or modify an appearance of that telephone to fit a certain need, these functions cannot be performed by a user of a real physical object. Thus, current software programs provide no effective system or method for taking advantage of a computer's capabilities without requiring a user to modify their mental model of the object and their interaction techniques.
Therefore, a need exists for a method and system which allows a user to take advantage of a computer's capabilities, even when those capabilities have no clear real-world equivalent, without breaking a uses mental model of the object or requiring a user to modify their interaction technique.